package com.itlong.cloud.smartcard.dao;

import com.itlong.cloud.POJO.VO.smartcard.SmartCardOldUserInfoVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <desc>
 *      旧一卡通_用户模块操作数据库接口。
 * <desc/>
 *
 * @createDate 2017/11/1.
 */
@Mapper
@Repository
public interface ISmartCardOldUserInfoDao {

     /**
      * <desc>
      *      查询单个用户的所有信息列表。
      * <desc/>
      *
      * @param phoneNo 手机号码
      * @return 
      * @author shengen.T
      * @createDate 2017/11/2
      */
      List<SmartCardOldUserInfoVO> getUserInfoList(@Param("phoneNo") String phoneNo);

       /**
        * <desc>
        *      检测一卡通手机号是否存在。
        * <desc/>
        *
        * @param  phoneNo 手机号
        * @return 返回记录数
        * @author shengen.T
        * @createDate 2017/11/3
        */
      Integer checkPhone(@Param("phoneNo")  String phoneNo);

      /**
       * <desc>
       *      一卡通更新用户项目状态
       * <desc/>
       *
       * @param userId
       * @param projectId
       * @param status
       * @return
       * @author Chunjian.G
       * @createDate 2018-01-03
       */
      Integer updateStatus(@Param("userId") String userId,
                           @Param("projectId") String projectId,
                           @Param("cardNum") String cardNum,
                           @Param("status") Integer status);

       /**
        * <desc>
        *      一卡通更新用户电梯权限信息。
        * <desc/>
        *
        * @param  userId 用户ID
        * @param  projectId 项目ID
        * @param  authSource 权限来源 （一卡通）
        * @param  status 状态
        * @return  返回影响行数 @Param("cardNum") String cardNum,
        * @author shengen.T
        * @createDate 2017/11/3
        */
      Integer updateElevatorAuth(@Param("userId") String userId,
                                 @Param("projectId") String projectId,
                                 @Param("authSource") Integer authSource,
                                 @Param("status") Integer status);

       /**
        * <desc>
        *      一卡通更新用户门禁权限信息。
        * <desc/>
        * @param  userId 用户ID
        * @param  projectId 项目ID
        * @param  authSource 权限来源 （一卡通）
        * @param  status 状态
        * @return  返回影响行数
        * @author shengen.T
        * @createDate 2017/11/3
        */
       Integer updateEntranceAuth(@Param("userId") String userId,
                                  @Param("projectId") String projectId,
                                  @Param("authSource") Integer authSource,
                                  @Param("status") Integer status);

       /**
        * <desc>
        *      根据用户手机获取用户ID。
        * <desc/>
        *
        * @param  phoneNo 手机号
        * @return  返回 userId
        * @author shengen.T
        * @createDate 2017/11/17
        */
      String getUserIdByPhoneNo(@Param("phoneNo") String phoneNo);


}
